package com.hoshiicloud.saleorder.dto;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 多条件查询DTO
 *
 * @author: Markerccc
 * @date: 2019/7/29 - 18:00
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class OrderMultiConditionDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主订单ID")
    private Long orderMainId;

    @ApiModelProperty("配送费用")
    private BigDecimal shippingFee;

    @ApiModelProperty("商品总金额")
    private BigDecimal goodsAmount;

    @ApiModelProperty("收货人的国家Code")
    private Integer consigneeCountryCode;

    @ApiModelProperty("收货人的国家名称")
    private String consigneeCountryName;

    @ApiModelProperty("收货人的省份code")
    private Integer consigneeProvinceCode;

    @ApiModelProperty("收货人的省份名称")
    private String consigneeProvinceName;

    @ApiModelProperty("收货人的城市Code")
    private Integer consigneeCityCode;

    @ApiModelProperty("收货人的城市名称")
    private String consigneeCityName;

    @ApiModelProperty("收货人的地区Code")
    private Integer consigneeDistrictCode;

    @ApiModelProperty("收货人的地区名称")
    private String consigneeDistrictName;

    @ApiModelProperty("收货人的详细地址")
    private String consigneeAddress;

    @ApiModelProperty("收货人的电话")
    private String consigneeMobile;

    @ApiModelProperty("订单附言, 由用途提交订单前填写")
    private String postscript;

    @ApiModelProperty("付款备注")
    private String payNote;

    @ApiModelProperty("提交时间")
    private String createdTime;

    @ApiModelProperty("付款时间")
    private String paidTime;

    @ApiModelProperty("取消时间")
    private String cancelledTime;

    @ApiModelProperty("交货时间")
    private String deliveryTime;

    @ApiModelProperty("收货时间 等于完成时间")
    private String receivedTime;

    @ApiModelProperty("发票类型")
    private String invType;

    @ApiModelProperty("发票抬头类型")
    private String invTitleType;

    @ApiModelProperty("发票抬头名称")
    private String invTitle;

    @ApiModelProperty("纳税人税号")
    private String invTaxIdentified;

    @ApiModelProperty("内容类型 1-商品明细 2-商品类目")
    private String invContextType;

    @ApiModelProperty("详细内容  内容存放json 或逗号分开")
    private String invContext;

    @ApiModelProperty("发票收款人")
    private String invPayee;

    @ApiModelProperty("推荐人")
    private String referer;

    @ApiModelProperty("发票编号")
    private String invoiceNo;

    @ApiModelProperty("买家姓名")
    private String buyerNickName;

    @ApiModelProperty("买家电话")
    private String buyerPhone;

    @ApiModelProperty("买家地址")
    private String buyerAddress;

    @ApiModelProperty("支付方式")
    private String payName;

    @ApiModelProperty("主订单编号")
    private String orderMainNo;

    @ApiModelProperty("结算方式")
    private Integer settlement;

    @ApiModelProperty("订单状态")
    private String orderMainStatus;

    @ApiModelProperty("配送情况")
    private String orderMainShippingStatus;

    @ApiModelProperty("支付状态")
    private String orderMainPayStatus;
    @ApiModelProperty("归档状态")
    private String orderMainArchived;

    @ApiModelProperty("评价状态")
    private Integer commented;

    @ApiModelProperty("物流信息")
    private String logisticsJsonStr;

    @ApiModelProperty("买家应付金额")
    private BigDecimal orderMainAmount;

    @ApiModelProperty("买家实付金额")
    private BigDecimal mainAmount;

    @ApiModelProperty("优惠券金额")
    private BigDecimal mainBenefitsAmount;

    @ApiModelProperty("余额抵扣金额")
    private BigDecimal mainBalanceAmount;

    @ApiModelProperty("金币抵扣金额")
    private BigDecimal mainCoinsAmount;

    @ApiModelProperty("优惠总额")
    private BigDecimal mainPreferentialAmount;

    @ApiModelProperty("商品信息")
    private List<GoodsAttributeDTO> goodsAttributeDTO;


}
